Monografias.com > Sin categoría
Descargar Imprimir Comentar Ver trabajos relacionados

CGI (interfaz de pasarela común) (página 2)




Enviado por Pablo Turmero



Partes: 1, 2

Monografias.com

VARIABLE DE ENTORNO CGI: Especificas de la petición

Información sobre la petición recibida:
CONTENT_LENGTH -Tamaño en números decimales de octetos y cualquier otra entidad adjunta
PATH_INFO -Ruta que debe interpretar una aplicación CGI
QUERY_STRING -Cadena de búsqueda URL-encoded.
REMOTE_ADDR -Dirección IP del agente que hace la petición
REMOTE_HOST -Nombre del dominio que realiza la petición
REQUEST_METHOD -Metido de petición por el cliente.
SCRIPT_NAME -URI para identificar la aplicación CGI

Monografias.com

VARIABLE DE ENTORNO CGI: Especificas de la petición

Información sobre la petición recibida:
CONTENT_TYPE -El tipo MIME de una entidad adjunta
Tipos:
Aplication -transmiten datos de la aplicación
Text -Información textual (ej: plain)
Multipart -Partes múltiples de tipos de datos independientes( ej: mixed, alternative..
Message -Un mensaje encapsulado (ej: partial, External-body)
Image -Datos de imagen (ej: gif, jpeg)
Audio – Datos de audio (ej: basic)
Video -Datos de video (ej mpeg)

Monografias.com

VARIABLE DE ENTORNO CGI: ACCESO DESDE C
#include < stdio.h>

char *variable;

Variable=getenv(“SERVER_NAME”);
}

Monografias.com

Establecimiento de la comunicación con el cliente
El servidor añade a la respuesta del CGI mas datos para devolver un mensaje HTTP correcto.
Si no se quiere que el servidor trate los datos devueltos por el CGI: Añadir el prefijo ‘nph-’(No Parser Header) al nombre del CGI.

Monografias.com

Referenciar un CGI
Usando etiquetas HTML
< a href=“direccion_del_CGI”>texto < /a>
ej:< a href=“http://www.zonaweb.es/cgi-bin/hora.cgi”>Dime la hora < /a>

Usando un formulario(lo más habitual)
< form action=“direccion_del_CGI”>< !– elementos del formulario–>< /form>

Monografias.com

LOS FORMULARIOS Y CGI
Uso de GET
Se utiliza para obtener un fichero o recurso
La vble de entorno QUERY_STRING lee los datos
Tamaño limitado: 256 caracteres
No registra cada petición
Uso de POST
Se usa para enviar datos al servidor
Los datos se leen por la entrada estandar
Tamaño ilimitado (CONTENT_LEGTH devuelve el tamaño)
Registra cada petición

Monografias.com

LOS FORMULARIOS Y CGI
El navegador envía los datos de la siguiente forma:
ej: control1=valor1& control2=valor2& control3=valor3
Para campos sin valor:
ej control1=& control2=valor2& control3=valor3
Caracteres para dividir los datos:
&: Separa las diferentes parejas campo/valor.
=: Separa el campo de su valor
%xx: identifica los caracteres especiales
+: Para codificar los espacios.

Monografias.com

Envio de informacion del servidor al CGI: Línea de comandos
? :Separa el CGI de los argumentos
+ : separa los argumentos entre sí.

Cada palabra es un parámetro que le llega al CGI (argv).
Los datos se encuentran en QYERY_STRING.

< a href=“/cgi-bin/cgi?arg1+arg2+arg3>enlace< /a>

Monografias.com

Envio de informacion del servidor al CGI: Entrada estandar
Envío mediante un formulario con POST.
Se recibe por la entrada estándar
Uso de las vbles:
CONTENT_LENGTH
CONTENT_TYPE

Monografias.com

Envio de informacion del servidor al CGI: Información de ruta de directorios

Utilizando la vble de entorno PATH_INFO.

< a href=“/cgi-bin/cgi/MasInformación?arg1+arg2+arg3>enlace< /a>

Monografias.com

Envio de informacion del servidor al CGI: URL
Envio mediante formularios con GET.
Formato: nom_cgi?campo1=valor1&camop2=valor2
Los datos los recibe la vble QUERY_STRING.

Ej: < a href=programaCGI.exe?arg1=1&arg2=5”>pincha aquí < /a>

Monografias.com

Ejemplo con formulario:
< html>
< head>< title>ejemplo de CGIs con Formulario
< /title>< /head>
< body>
< form action="form.cgi" method="get">
< tr>
< td>< b>Ejemplo de Formulario< /b>< br>
< br>
< /td>
< /tr>
< tr>< td>Nombre< /td>
< td>< input type="text" maxlength="160" size="40" name="nombre">
< /td>
< br>
< /tr>
< tr>< td>Color< /td>
< td>< SELECT NAME="color">
< OPTION>Blanco
< OPTION>Azul
< OPTION>Rojo
< /SELECT >

< /td>
< /tr>
< tr>< td>País< /td>
< td>< SELECT NAME="pais">
< OPTION value="cl">Francia
< OPTION value="es">España
< OPTION value="zz">Portugal
< /SELECT >
< /td>
< br>
< /tr>
< tr>
< td>< INPUT TYPE="submit" VALUE="Enviar datos">
< /td>
< /tr>
< /table>
< /form>
< /body>
< /html>

Monografias.com

Ejemplo con formulario:
#include < stdio.h>
#include "cgiforms.h"
#define LARGO_MAXIMO 1024
void imprimeVariable( char *lpzNombre );

main(){
printf("Content-Type: text/htmlnn");
printf("< html>< body bgcolor=#ffffff text=#ffffff>n");
printf("< p align=center>< table cellpadding=4 bgcolor=000000>n");
printf("< tr>< td color=000080 align=center>");
printf("< b>Campos recibidos desde el Form< /b>< /td>< /tr>n");
imprimeVariable( "nombre" );
imprimeVariable( "color" );
imprimeVariable( "pais" );
printf("< /table>n");
printf("< /body>< /html>");
return( 0 );
}
void imprimeVariable( char *lpzNombre ){
/*** recibe el nombre de la variable yla imprime
formateada como celdas de una tabla***/
char lpzResultado[LARGO_MAXIMO];
printf("< tr>n");
printf("< td bgcolor="#9999FF" valign=top>%s< /td>n",Nombre);
printf("< td bgcolor="#DDDDFF" valign=top>< font color=#000000>");
/***aqui pide la variable y luego la imprime***/
formPideVariable( lpzNombre,lpzResultado,LARGO_MAXIMO);
printf(¨[%s]",lpzResultado);
printf("< /td>n");
printf("< /tr>n");

Monografias.com

Ejemplo con formulario:

Partes: 1, 2
 Página anterior Volver al principio del trabajoPágina siguiente 

Nota al lector: es posible que esta página no contenga todos los componentes del trabajo original (pies de página, avanzadas formulas matemáticas, esquemas o tablas complejas, etc.). Recuerde que para ver el trabajo en su versión original completa, puede descargarlo desde el menú superior.

Todos los documentos disponibles en este sitio expresan los puntos de vista de sus respectivos autores y no de Monografias.com. El objetivo de Monografias.com es poner el conocimiento a disposición de toda su comunidad. Queda bajo la responsabilidad de cada lector el eventual uso que se le de a esta información. Asimismo, es obligatoria la cita del autor del contenido y de Monografias.com como fuentes de información.

Categorias
Newsletter